1. Field of the Invention
The present invention relates to a bar code reader for optically reading a bar code mark affixed on an object and electrically producing numerical data relating to the bar code, and particularly to a bar code reader having a plurality of beam scanners for scanning the bar code mark with optical beams in respective, different directions for reading the bar code correctly and speedily.
2. Description of the Related Art
FIG. 1 shows a block diagram of a bar code reader 99 of the related art. The bar code reader 99 consists of: scanners, for example, two scanners (SCANNERs) 91 and 92; counters (COUNTERs) 11 and 12 operating with SCANNERs 91 and 92 respectively; decoders (DECODERs) 71 and 72 corresponding to COUNTERs 11 and 12, respectively; and a central processing unit (CPU) 8 for processing decoded signals form DECODERs 71 and 72 and controlling operation of SCANNERs 91 and 92, COUNTERs 11 and 12 and DECODERs 71 and 72.
The SCANNER 91 (92) comprises an automatic power controller (APC) 921 (922) for driving a laser diode (LD) 951 (952) so as to make LD 951 (952) radiate constant power of laser; and optical system 911 (912) for producing a laser beam, scanning a bar code mark (BAR CODE MARK) on an object with the laser beam and receiving light reflected from BAR CODE MARK irradiated by the laser beam.
FIG. 2A is an outer view of SCANNERs 91 and 92, and FIG. 2B is a perspective view illustrating SCANNER 91 (92). In FIGS. 2A and 2B, the same respective reference numerals as in FIG. 1 designate the same part as in FIG. 1.
In FIG. 2B, the laser beam radiated from LD 951 (952) under the control of CPU 8 is directed to a polygonal mirror 981 (982) by plane mirrors as shown with a line having an arrow. The laser beam radiated from LD 951 (952) is rotatingly reflected by the polygonal mirror 981 (982), which is rotated at a constant angular speed by a rotating motor 941 (942) shown in FIG. 1. The rotating, reflected beam is reflected in succession and respectively by three segments of a slanted flat mirror 971 (972). The segments of the slanted flat mirror[s] 971 (972) face the polygonal mirror 981 (982) but are angularly slanted relatively to the reflected beam, so that three rotating, reflected beams are produced. These three beams are reflected by a common plane mirror 991 (992) and pass through a hologram window 961 (962) so as to scan the object 99 placed at the front (opposite) side of the hologram window 961 (962). The SCANNERs 91 and 92 are provided in structure in which the hologram window 961 makes approximately a right angle with the hologram window 962, as shown in FIG. 2A. Therefore, when the object 99 is placed in the right angle opening, the object 99, and therefore the BAR CODE MARK on the object 99, is scanned by two groups, of three beams per group, respectively from SCANNERs 91 and 92, which is very effective in accomplishing the correct and speedy reading of the bar code.
The light reflected from BAR CODE MARK arrives at a corresponding detector (DET) 131 (132) of the COUNTER 11 (12), after passing through a path including the hologram window 961 (962), the common plane mirror 991 (992), the segments of the flat slanted mirror 971 (972), the polygonal mirror 981 (982), a concave mirror 911-11 (911-12) which collects the reflected light and a folded mirror 911-21 (911-22) which guides the collected light to DET 131 (132). When DET 131 (132) receives the light, DET 131 (132) produces an electric analog signal including bar code information.
In COUNTER 11 (12) shown in FIG. 1, the analog bar code signal produced by DET 131 (132) is converted to a digital bar code signal by an analog to digital converter (A/D) 111 (112) which is connected with, and receives the analog signal output of, DET 131 (132). The digital bar code signal is sent to a bar width counter (BW COUNT) 121 (122) in which the effective time width, between the digital bar code signals corresponding to each set of successively scanned, adjacent black and white bars of the bar code, is counted, successively for all such sets, using a clock signal output by a clock signal generator (CLOCK) 10, and thereby producing a sequence of numerical data corresponding to the black and white bars.
The above description regarding the count of the time duration of the black and white bars is depicted in FIGS. 3A to 3E. FIG. 3A illustrates the optical beam at four successive positions, represented by four corresponding circles, in a scan path when scanning the white and black bar marks in a direction from left to right, as shown by a large arrow in FIG. 3A. Only the black bar marks are shown, but spaces preceding and following each black bar mark, and thus between adjacent black bars, represent corresponding white bar marks.
FIG. 3B illustrates the analog signal output from DET 131 (132) when the beam scans the bar code marks as shown in FIG. 3A. In FIG. 3B, a positive level of the analog signal represents a black bar mark, and each negative level, preceding and following a positive level of the analog signal, and thus between successive positive levels of the analog signal, represents a white bar mark.
FIGS. 3C and 3D show the digital signals from A/D 111 (112). The digital signal (BEG) shown in FIG. 3C includes a positive pulse produced at a leading edge, and the digital signal (WEG) shown in FIG. 3D includes a positive pulse produced at a trailing edge, of each positive level analog signal. The digital signals (BEGs and WEGs) shown in FIGS. 3C and 3D as produced by A/D 111 (112) are supplied to BW COUNT 121 (122) which counts the time duration between each leading edge signal and a next adjacent, or successive, trailing edge signal by the clock signal, producing the numerical data of, for example, 11 bits. The numerical data for each white bar and that for each black bar are obtained alternately, i.e., produced in alternating succession, as shown in FIG. 3E. The numerical data D0, D2, D4 and D6 represent the numerical data on the white bars and D1, D3 and D5 represent the numerical data on the black bars.
The successive numerical data D0 to D6 corresponding to the alternating white and black bars are held in a well known first-in first-out register (FIFO) 21 (22) shown in FIG. 1, for arranging a time to send the numerical data to DECODER 71 (72).
The numerical data held in FIFO 21 (22) are sent to DECODER 71 (72) in accordance with a command sent from CPU 8. For simplicity, lines for transferring command signals and response signals between CPU 8 and other units such as FIFOs 21 (22) and DECODER 71 (72) are omitted in FIG. 1. In DECODER 71 (72), the numerical data are decoded to produce data used for displaying, printing, and calculating the information on the bar code and for sending the thus calculated information to a host computer not depicted in FIG. 1.
When the beam scans the object 99 having the BAR CODE MARK, the beam scans not only the BAR CODE MARK but also a margin of the BAR CODE MARK and, sometimes, even fails to scan the BAR CODE MARK. When the beam scans the margin or fails to scan the BAR CODE MARK, a false digital signal is produced by A/D 111 (112), causing FIFO 21 (22) to hold false numerical data. However, since an international standard code called Universal Products Code (UPC) is provided, the false numerical data can be detected on the basis of the UPC. According to the UPC, the time required to scan each black bar and each white bar is limited so as to be more than a minimum time and less than a maximum time, respectively, for each. In other words, the numerical data is limited so as to be in a specified range designated by a first data, which will be called a maximum data hereinafter, corresponding to the maximum counted number, and a second data, which will be called a minimum data hereinafter, corresponding to the minimum counted number. If a numerical data held in FIFO 21 (22) exceeds the maximum data or is not at least as great as the minimum data, the numerical data is removed from the numerical data to be used as representing the bar code. This is for avoiding mistakes in the bar code reading.
A case where a numerical data stored in FIFO 21 (22) exceeds the maximum data will be explained in reference to FIG. 4. FIG. 4 is a schematic planar view illustrating the arrangement of the segments of the slanted flat mirror 971 (972) relative to the polygonal mirror 981 (982) shown in FIG. 2B. In FIG. 4, when the beam is scanned by the rotating polygonal mirror 981 (982), the beam passes the segments of the slanted flat mirror 971 (972) along corresponding beam paths shown by lines, each having an arrow, and through gaps between the successive, adjacent segments of the slanted flat mirror 971 (972). When the beam scans the gap, a numerical data exceeding the maximum data is obtained. If the gap is 5 millimeter (mm) in length and the scan speed is 100 meters per second (m/s) along the beam path, the beam passes the gap in 50 micro-second (.mu.s), as obtained from an expression: EQU 5 mm.div.100 m/s=50 .mu.s.
If an interval of the clock signal is 25 nano-second (ns), a count value corresponding to the gap is 2000, as obtained from an expression: EQU 50 .mu.s.div.25 ns=2000 (counts).
However, the maximum value, provided in the UPC, is 1408 counts and thus less than 2000 counts. Therefore, it is decided that the numerical data on the gap is false data, since exceeding the maximum data. The examination for determining whether there is a false data exceeding the maximum data will be called "overflow examination" hereinafter, and the false data which exceeds the maximum data will be called "overflow data" hereinafter.
A case where a numerical data held in FIFO 21 (22) is not at least equal to the minimum data will be explained in reference to FIGS. 5A to 5C. When the analog signal output from A/D 111 (112) has positive level waveforms corresponding to the black bars, the positive level waveforms should have the waveshape indicated by dotted contour lines, as shown in FIG. 5A. However, if the positive waveforms are broken (or defective), as shown by solid line curves in FIG. 5A because of, for example, defective printing of the bar code mark or electrical noise, defective digital signals are produced, e.g., having double digital signals at a single leading edge or having a very short time interval between the respective leading edge and trailing edge of each such defective positive waveform, as seen in FIGS. 5B and 5C. These false digital signals would produce false numerical data, each less than the minimum data. However, such false numerical data can be eliminated from being produced by examining whether the numerical data include a data, which will be called a "waveform error data" hereinafter, having an error due to the broken waveform and thus not satisfying the minimum data requirement. This examination will be called "waveform examination" hereinafter.
Though there is no such depiction in FIG. 1, the overflow examination has been performed in DECODER 71 (72) and the waveform examination has been performed in DECODER 71 (72) in cooperation with COUNTER 11 (12) in the prior art. Therefore, in the bar code reader of the prior art, there has been a problem, in that each decoder had to carry out a much too complex function with a large scale circuit and the bar code reader had to provide as many decoders as the number of counters, or of scanners, of the bar code reader. This causes a substantial manufacturing time and high costs of the bar code reader.